Skip to main content

Agent 记忆

前置:做过一个多轮对话的应用。知道每次请求都要把历史消息一起发给模型就够了。

本专题回答:什么该记、存成什么样、用户改口了怎么办、下次怎么把对的那几条取回来,以及什么情况下根本不该上这一层。

同一个用户,上周说过"我对花生过敏",这周问"推荐个川菜馆"。会话结束时 messages 数组被丢掉,下一次请求里没有任何关于花生的字节 —— 模型不是忘了,是根本没收到。

记忆层就是补上这一段:从已经结束的会话里挑出值得留下的东西,存到会话之外,在下一次需要时放回上下文。本专题拆解这件事的四个动作 —— 挑什么、怎么存、怎么改、怎么取回 —— 以及它们各自会怎么坏。

先约定几个词,本专题全程使用:

意思
上下文(context)这一次请求真正发给模型的那串 token。它是易失的,请求结束就没了
记忆(memory)存在上下文之外、能跨会话活下来的东西。记忆本身不产生效果,只有被读回上下文才有效果
抽取(extraction)用一次额外的模型调用,从对话里挑出"值得记住的事实"。绝大多数记忆库的写入路径第一步
情景 / 语义 / 程序记忆记忆的三种分型:发生过什么、事实是什么、该怎么做。01 篇细讲
巩固(consolidation)新事实进来时,跟已有记忆比对、合并、改写或作废的过程。冲突消解发生在这里
双时间轴(bi-temporal)同时记录"事实在现实中何时成立"和"系统何时知道这件事"两条时间线。03 篇细讲
热路径 / 后台记忆写入的两种时机:在用户等回复的这一轮里写(热路径),还是回复完再异步写(后台)
记忆投毒攻击者诱导 Agent 把伪造事实写进记忆,之后每一轮都被读回来。07 篇细讲

一、这一层要解决的六个问题

六个问题递进 —— 前一个没定下来,后一个的方案就没有判据① 边界在哪跟上下文的分工跟 RAG 的分工三种记忆分型01 篇② 写什么抽取还是全量存热路径还是后台一条记忆多少钱02 篇③ 变了怎么办前后矛盾的两条删除还是作废双时间轴03 篇④ 怎么取回向量为何不够图检索加什么召回预算04 篇⑤ 存在哪文件还是数据库谁来读写它八个实现横评05 · 06 篇⑥ 会怎么坏投毒与错误固化评测读不读得懂选型与落地07 篇最常见的翻车是跳过①直接选产品 —— 把本该走 RAG 的文档检索需求接到记忆库上,抽取一遍再存一遍,成本翻倍而召回更差。②排在④前面,是因为写入决定了检索的天花板:抽取阶段丢掉的信息,任何检索策略都找不回来。
六个问题对应 01 到 07 篇,08 篇把这套框架套回两个真实实现上。真正决定效果上限的是②,业界的主要分歧也集中在那里 —— 该由模型抽取事实,还是原样存下整段对话。

二、八篇正文

#标题读完能回答的问题
01记忆与上下文的边界上下文、记忆、RAG、检查点这四个词到底哪里不一样?我这个需求是不是根本不需要记忆层
02写入路径:什么该被记下来一整段对话里,哪几句值得存?该在用户等回复的时候存还是回完再存?多花的这次模型调用要多少钱
03冲突、遗忘与时间用户上个月说住北京,这个月说住上海 —— 旧的那条该删吗?为什么直接删掉几乎总是错的
04读取路径:向量、图与结构化存了几千条,这一轮该取哪几条?为什么只按相似度取会漏掉最该取的那条?取回来放在提示词的哪个位置
05文件系统式记忆能不能干脆让模型自己写文件、自己读文件?这条路好在哪,又在哪里撑不住
06开源实现横评十五个现成的库该挑哪个?装起来各自要拖多少依赖、协议能不能商用、有哪四个坑是看 README 看不出来的
07失败模式、评测与选型记忆里被人塞了假事实会怎样?A 用户的记忆会不会串到 B 那里?各家宣传的评测分数能不能信
08两个大厂实现拆解字节和腾讯是怎么做的?用前七篇的框架逐条对一遍,看它们各自选了哪条路、共同留下了哪三处空白
按你手上的症状挑 —— 七篇不必按顺序读不确定这个需求该不该上记忆层先跟上下文、RAG、持久化执行划清界限01记忆存进去了,问的时候取不出来纯向量的失效场景与混合检索04记了一大堆没用的,账单还很贵抽取粒度、写入时机与单条成本02不想为记忆再引��一套数据库文件式记忆能撑到哪一步05用户改了信息,旧的那条还在被读回作废语义与双时间轴03要选一个产品,不知道从何比起许可证、存储依赖、两个选型陷阱06怀疑记忆被污染,或看不懂榜单数字投毒路径与三方评测争议复盘07从零开始建这一层按顺序读,落地步骤在 07 篇第六节全读
左列是"存不进去"类问题,右列是"取不出来 / 选不下来"类问题。绝大多数线上事故出在左下角那一格 —— 事实变了但旧记忆没作废。

只读两篇的话:02 篇(写入路径)和 07 篇(失败模式与评测)。前者决定你能记住什么,后者决定你能不能相信自己记住的东西。想直接看别人怎么做的,跳 08 篇

三、榜单数字目前不可比

LoCoMo 是这个领域引用最多的基准。同一个系统在同一个基准上,公开材料里出现过四个分数,最低 58.44%、最高 84% —— 不是实现不同,是评测口径和配置方式不同。完整的争议链条在 07 篇第四节。

在读到那篇之前,先记住一条:看到"我们在 LoCoMo 上比 X 高 26%"这类表述,先问用的哪个子集、谁跑的 X、用的什么嵌入模型。2026 年的对照实验(MemDelta)显示,只换嵌入模型这一个变量就能让结论反向。

四、本专题拆解的对象

许可证一列不是照抄仓库首页的标签,而是逐个打开许可证文件读出来的 —— 这一栏和你能不能把它用在公司项目里直接相关,下面会看到好几处两者不一致。

4.1 十五个开源实现

按出身分两组 —— 大厂那一组的共同特点是把记忆做成团队级共享资产,独立项目那一组更多是给单个应用用的库。

大厂与云厂商

项目许可证(实读)形态
volcengine/OpenViking33,440AGPL-3.0crates/ov_cliexamples 为 Apache-2.0)字节跳动火山引擎。把记忆、资源、技能统一成 viking:// 虚拟文件系统,L0/L1/L2 三层按需加载,Rust + Python
TencentCloud/TencentDB-Agent-Memory24,556MIT(gh 返回 NOASSERTION,因文件开头有腾讯的声明段)腾讯云。团队级记忆中枢,L0 到 L3 四层 + 权限绑定,TypeScript
agentscope-ai/ReMe3,354Apache-2.0阿里 AgentScope 团队。本地优先的 Markdown 记忆,reme-ai 0.4.1.7。modelscope/MemoryScope,改名迁仓后旧地址 301 跳转

独立项目

项目许可证(实读)形态
mem0ai/mem064,075Apache-2.0抽取式记忆层,向量库 + 可选图库,mem0ai 2.0.19
getzep/graphiti30,319Apache-2.0时序知识图引擎,Zep 的开源内核,graphiti-core 0.29.3
topoteretes/cognee30,268Apache-2.0知识图 + 向量的记忆平台,cognee 1.5.3
supermemoryai/supermemory29,074MITTypeScript,记忆 + RAG + 连接器一体
memvid/memvid16,448Apache-2.0Rust,单文件、免服务的记忆层
MemoriLabs/Memori16,224Apache-2.0(gh 同样判 NOASSERTION)记录 Agent 执行过程本身,而不只是对话
NevaMind-AI/memU14,347Apache-2.0(文件名是 LICENSE.txt把记忆存成 Wiki 文件,挂到各家 Agent 客户端上
EverMind-AI/EverOS12,438Apache-2.0本地优先、Markdown 原生、跨 Agent 可移植
MemTensor/MemOS10,996Apache-2.0统一记忆 API,图结构可读可改
plastic-labs/honcho6,844AGPL-3.0建仓最早(2023-09)。与 OpenViking 同为 AGPL,作为服务对外提供时有传染性,选型前先过法务
letta-ai/letta-code3,122Apache-2.0Letta(原 MemGPT)当前源码,git 版本化的记忆目录
langchain-ai/langmem1,626MITLangGraph 生态的记忆原语,PyPI 仍停在 0.0.30

横评在 06 篇,字节与腾讯两套单独拆在 08 篇两处需要单独看volcengine/OpenVikingplastic-labs/honcho 是仅有的两个 AGPL-3.0,而记忆层几乎总以服务形态部署,选之前要过法务;腾讯和 Memori 那两行 GitHub API 判不出许可证,是因为许可证文件开头加了自己的声明段,正文都是标准的 MIT / Apache-2.0。

4.2 一个官方工具接口

接口标识作用
Anthropic memory 工具memory_20250818客户端执行的文件式记忆,六个命令(view / create / str_replace / insert / delete / rename),作用在 /memories 前缀下

拆解在 05 篇。它不是一套规范 —— 只有 Anthropic 一家实现,但它代表了"记忆就是一堆文件"这条路线最干净的形态。

4.3 五篇论文

论文arXiv时间在本专题里的角色
Evaluating Very Long-Term Conversational Memory2402.177532024-02LoCoMo 数据集的出处,平均 300 轮、约 9K token、最多 35 个会话
Zep: A Temporal Knowledge Graph Architecture2501.139562025-01双时间轴建模的出处,DMR 上 94.8% 对 MemGPT 的 93.4%
Mem0: Building Production-Ready AI Agents2504.194132025-04抽取 + 巩固两阶段架构的出处
MemMachine2604.048532026-04"少抽取、原样存整段"路线的代表
MemDelta2606.299142026-06单变量对照评测协议,07 篇争议一节的主要依据

五、与其他专题的关系

  • Agent 安全 07 - 记忆与上下文外泄:那一篇讲记忆里的东西怎么泄出去,本专题 07 篇讲脏东西怎么写进来,两个方向合起来才是完整的记忆威胁面
  • Agent 持久化执行:都在做"跨进程保管状态",但保管的东西不同 —— 那一层存的是执行到哪一步,本层存的是学到了什么。01 篇第二节逐条对比
  • Agent 可观测性 06 - 成本归因:记忆的写入是额外的模型调用,它在账单里通常被算进业务 Agent 头上,02 篇会给拆开的口径
  • Agent 上下文工程:记忆读回来之后往哪儿放、占多少预算、会不会打掉前缀缓存,是那个专题的题目

← 回到 Agent Infra 板块总览